#ifndef _SE_LAYER_
#define _SE_LAYER_

#include "Events/Event.hpp"

namespace SE
{
	class Layer
	{
	public:
		Layer() = default;
		virtual ~Layer() = default;

		virtual void	onAttach() {}
		virtual void	onEvent(Event& event) {}
		virtual void	onRender(const Double deltaMilliseconds) {}
		virtual void	onCompute(const Double deltaMilliseconds) {}
		virtual void	onDetach() {}
		virtual String	getName() const { return "Layer"; }
	};
} // !namespace SE

#endif // !_SE_LAYER_